<?php 
	include_once $_SERVER["DOCUMENT_ROOT"].'/outils/parameters/ParameterGetter.php';
	include_once $_SERVER["DOCUMENT_ROOT"].'/outils/exceptions/FormulaireException.php';
	include_once $_SERVER["DOCUMENT_ROOT"].'/outils/writerJSON/WriterJSON.php';
	include_once $_SERVER["DOCUMENT_ROOT"].'/outils/string/StringUtils.php';
	include_once $_SERVER["DOCUMENT_ROOT"].'/service/uc/news/GererNewsService.php';

	class GererNewsAction {
		public static function ajouter() {
			$newsEntite = GererNewsService::ajouterNews();
			ParameterGetter::setSessionParameter("newsEntite", $newsEntite);
			WriterJSON::echoSuccessState();
		}
		
		public static function modifier() {
			$id = ParameterGetter::getRequestParameter("id", true);
			$newsEntite = GererNewsService::modifierNews($id);
			ParameterGetter::setSessionParameter("newsEntite", $newsEntite);	
			WriterJSON::echoDonnees(array("titre" => $newsEntite->titre, "description" => $newsEntite->description));
		}
		
		public static function getIdModifie() {
			$newsEntite = ParameterGetter::getSessionParameter("newsEntite", true);
			$id = $newsEntite->id;
			WriterJSON::echoDonnees (array("id" => "$id"));
		}
		
		public static function valider() {
			$newsEntite = ParameterGetter::getSessionParameter("newsEntite", true);
			$newsEntite->titre = ParameterGetter::getRequestParameter("titre", true);
			$newsEntite->description = ParameterGetter::getRequestParameter("description", true);
			
			GererNewsAction::verifierNewsAvantValidation($newsEntite);
			GererNewsService::validerNews($newsEntite);
			ParameterGetter::removeSessionParameter("newsEntite");
			WriterJSON::echoSuccess ("La news a bien été ajoutée/modifiée");
		}
		
		public static function annuler() {
			ParameterGetter::removeSessionParameter("newsEntite");
			WriterJSON::echoSuccessState();
		}
		
		public static function supprimer() {
			$id = ParameterGetter::getRequestParameter("id", true);
			GererNewsService::supprimerNews($id);
			WriterJSON::echoSuccess ("La news a bien été supprimée");
		}
		
		private static function verifierNewsAvantValidation($newsEntite) {
			$exception = new FormulaireException();
			if (StringUtils::isEmpty($newsEntite->titre)) {
				$exception->ajouterChampNonRenseigne("Titre");
			}
			if (StringUtils::isEmpty($newsEntite->description)) {
				$exception->ajouterChampNonRenseigne("Description");
			}
			if ($exception->contientErreurs()) {
				throw $exception;
			}
		}
	}
?>